/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.opgea.token.service;

import java.util.Date;
import java.util.List;

import com.opgea.token.domain.model.TokenStatusReplyModel;
import com.opgea.token.domain.qualifiers.TokenStatusQualifier;
import com.opgea.token.web.dto.TokenDetailsDTO;

/**
 * 
 * @author Ramesh
 */
public interface TokenService {

    public TokenDetailsDTO create(TokenDetailsDTO tokenDetailsDTO);

    public TokenDetailsDTO update(TokenDetailsDTO tokenDetailsDTO);

    public TokenDetailsDTO find(Long id);

    public TokenDetailsDTO findAll();

    public Integer getMaxTokenNumber(Long companyId, String dateString);

    public List<TokenDetailsDTO> findAllByCompanyId(Long companyId, Date date);

    public List<TokenDetailsDTO> findAllByCompanyIdAndStatus(Long companyId,
	    Date date, TokenStatusQualifier qualifier);

    public TokenStatusReplyModel tokenReply(Long companyId, Integer tokenNo);
}
